package com.zhoufeng.model;

import com.jfinal.plugin.activerecord.Model;
import com.zhoufeng.db.DbMng;

public class DeviceModel extends Model<DeviceModel> {
	private static final long serialVersionUID = 1L;
	public final static DeviceModel me = new DeviceModel();

	public String getFilterSettingsInfo(String id) {
		DeviceModel deviceModel = findById(id);
		int seton = deviceModel.getInt("seton");
		int queryon = deviceModel.getInt("queryon");

		if (seton == 0) {
			if (queryon == 1) {
				StringBuffer sb = new StringBuffer("AA 8A ");

				Integer value = null;
				String s = "";
				String str1 = "";
				String str2 = "";
				int con = 0;

				{
					// primaryfilterlife_set
					value = deviceModel.getInt("primaryfilterlife_set");
//					con += value;
					s = Integer.toString(value, 16).toUpperCase();
					str1 = "";
					str2 = "";
					if (s.length() < 3) {
						str1 = "00";
						if (s.length() < 2) {
							str2 = "0" + s;
						} else {
							str2 = s;
						}
					} else {
						if (s.length() < 4) {
							str1 = "0" + s.substring(0, 1);
							str2 = s.substring(1, 3);
						} else {
							str1 = s.substring(0, 2);
							str2 = s.substring(2, 4);
						}
					}
					sb.append(str1 + " ");
					sb.append(str2 + " ");
					con += Integer.parseInt(str1, 16);
					con += Integer.parseInt(str2, 16);
				}

				{
					// electrostaticdustoflife_set
					value = deviceModel.getInt("electrostaticdustoflife_set");
//					con += value;
					s = Integer.toString(value, 16).toUpperCase();
					str1 = "";
					str2 = "";
					if (s.length() < 3) {
						str1 = "00";
						if (s.length() < 2) {
							str2 = "0" + s;
						} else {
							str2 = s;
						}
					} else {
						if (s.length() < 4) {
							str1 = "0" + s.substring(0, 1);
							str2 = s.substring(1, 3);
						} else {
							str1 = s.substring(0, 2);
							str2 = s.substring(2, 4);
						}
					}
					sb.append(str1 + " ");
					sb.append(str2 + " ");
					con += Integer.parseInt(str1, 16);
					con += Integer.parseInt(str2, 16);
				}

				{
					// highefficiencyfilterlife_set
					value = deviceModel.getInt("highefficiencyfilterlife_set");
//					con += value;
					s = Integer.toString(value, 16).toUpperCase();
					str1 = "";
					str2 = "";
					if (s.length() < 3) {
						str1 = "00";
						if (s.length() < 2) {
							str2 = "0" + s;
						} else {
							str2 = s;
						}
					} else {
						if (s.length() < 4) {
							str1 = "0" + s.substring(0, 1);
							str2 = s.substring(1, 3);
						} else {
							str1 = s.substring(0, 2);
							str2 = s.substring(2, 4);
						}
					}

					sb.append(str1 + " ");
					sb.append(str2 + " ");
					con += Integer.parseInt(str1, 16);
					con += Integer.parseInt(str2, 16);
				}

				// {
				// // primaryfilterlife
				// sb.append("00 ");
				// sb.append("00 ");
				// }
				//
				// {
				// // electrostaticdustoflife
				// sb.append("00 ");
				// sb.append("00 ");
				// }
				//
				// {
				// // electrostaticdustoflife
				// sb.append("00 ");
				// sb.append("00 ");
				// }
				{
					// primaryfilterlife_reset
					sb.append("00 ");
				}
				{
					// electrostaticdustoflife_reset
					sb.append("00 ");
				}
				{
					// highefficiencyfilterlife_reset
					sb.append("00 ");
				}

				sb.append("00 ");
				sb.append("00 ");
				sb.append("00 ");
				sb.append("00 ");
				sb.append("00 ");
				sb.append("00 ");

				String id1 = id.substring(0, 2);
				String id2 = id.substring(2, 4);
				String id3 = id.substring(4, 6);

				Integer in1 = Integer.parseInt(id1, 16);
				Integer in2 = Integer.parseInt(id2, 16);
				Integer in3 = Integer.parseInt(id3, 16);
				con += in3;
				con += in2;
				con += in1;

				sb.append(id3 + " ");
				sb.append(id2 + " ");
				sb.append(id1 + " ");

				s = Integer.toString(con, 16).toUpperCase();
				if (s.length() < 2) {
					sb.append("0" + s + " ");
				} else {
					if (s.length() > 2) {
						sb.append(s.substring(s.length() - 2) + " ");
					} else {
						sb.append(s + " ");
					}
				}

				sb.append("AB");

				// 关闭查询开关
				DbMng.updateQueryOff(id);

				return sb.toString();
			}
		} else {
			StringBuffer sb = new StringBuffer("AA 8A ");

			Integer value = null;
			String s = "";
			String str1 = "";
			String str2 = "";
			int con = 0;

			{
				// primaryfilterlife
				value = deviceModel.getInt("primaryfilterlife");
//				con += value;
				s = Integer.toString(value, 16).toUpperCase();
				str1 = "";
				str2 = "";
				if (s.length() < 3) {
					str1 = "00";
					if (s.length() < 2) {
						str2 = "0" + s;
					} else {
						str2 = s;
					}
				} else {
					if (s.length() < 4) {
						str1 = "0" + s.substring(0, 1);
						str2 = s.substring(1, 3);
					} else {
						str1 = s.substring(0, 2);
						str2 = s.substring(2, 4);
					}
				}
				sb.append(str1 + " ");
				sb.append(str2 + " ");
				con += Integer.parseInt(str1, 16);
				con += Integer.parseInt(str2, 16);
			}

			{
				// electrostaticdustoflife
				value = deviceModel.getInt("electrostaticdustoflife");
//				con += value;
				s = Integer.toString(value, 16).toUpperCase();
				str1 = "";
				str2 = "";
				if (s.length() < 3) {
					str1 = "00";
					if (s.length() < 2) {
						str2 = "0" + s;
					} else {
						str2 = s;
					}
				} else {
					if (s.length() < 4) {
						str1 = "0" + s.substring(0, 1);
						str2 = s.substring(1, 3);
					} else {
						str1 = s.substring(0, 2);
						str2 = s.substring(2, 4);
					}
				}
				sb.append(str1 + " ");
				sb.append(str2 + " ");
				con += Integer.parseInt(str1, 16);
				con += Integer.parseInt(str2, 16);
			}

			{
				// electrostaticdustoflife
				value = deviceModel.getInt("highefficiencyfilterlife");
//				con += value;
				s = Integer.toString(value, 16).toUpperCase();
				str1 = "";
				str2 = "";
				if (s.length() < 3) {
					str1 = "00";
					if (s.length() < 2) {
						str2 = "0" + s;
					} else {
						str2 = s;
					}
				} else {
					if (s.length() < 4) {
						str1 = "0" + s.substring(0, 1);
						str2 = s.substring(1, 3);
					} else {
						str1 = s.substring(0, 2);
						str2 = s.substring(2, 4);
					}
				}

				sb.append(str1 + " ");
				sb.append(str2 + " ");
				con += Integer.parseInt(str1, 16);
				con += Integer.parseInt(str2, 16);
			}
			{
				// primaryfilterlife_reset
				value = deviceModel.getInt("primaryfilterlife_reset");
				con += value;
				s = Integer.toString(value, 16).toUpperCase();
				s = s.length() < 2 ? "0" + s : s;
				sb.append(s + " ");
			}
			{
				// electrostaticdustoflife_reset
				value = deviceModel.getInt("electrostaticdustoflife_reset");
				con += value;
				s = Integer.toString(value, 16).toUpperCase();
				s = s.length() < 2 ? "0" + s : s;
				sb.append(s + " ");
			}
			{
				// highefficiencyfilterlife_reset
				value = deviceModel.getInt("highefficiencyfilterlife_reset");
				con += value;
				s = Integer.toString(value, 16).toUpperCase();
				s = s.length() < 2 ? "0" + s : s;
				sb.append(s + " ");
			}

			sb.append("00 ");
			sb.append("00 ");
			sb.append("00 ");
			sb.append("00 ");
			sb.append("00 ");
			sb.append("00 ");

			String id1 = id.substring(0, 2);
			String id2 = id.substring(2, 4);
			String id3 = id.substring(4, 6);

			Integer in1 = Integer.parseInt(id1, 16);
			Integer in2 = Integer.parseInt(id2, 16);
			Integer in3 = Integer.parseInt(id3, 16);
			con += in3;
			con += in2;
			con += in1;

			sb.append(id3 + " ");
			sb.append(id2 + " ");
			sb.append(id1 + " ");

			s = Integer.toString(con, 16).toUpperCase();
			if (s.length() < 2) {
				sb.append("0" + s + " ");
			} else {
				if (s.length() > 2) {
					sb.append(s.substring(s.length() - 2) + " ");
				} else {
					sb.append(s + " ");
				}
			}

			sb.append("AB");

			// 关闭设置开关
			DbMng.updateSetOff(id);

			return sb.toString();
		}

		return null;
	}

	public String getFilterSettingsInfoForApp(String id) {
		DeviceModel deviceModel = findById(id);
		int seton = deviceModel.getInt("seton");
		int queryon = deviceModel.getInt("queryon");

		StringBuffer sb = new StringBuffer("40 9A ");

		Integer value = null;
		String s = "";
		String str1 = "";
		String str2 = "";
		int con = 0;

		{
			// primaryfilterlife
			value = deviceModel.getInt("primaryfilterlife");
//			con += value;
			s = Integer.toString(value, 16).toUpperCase();
			str1 = "";
			str2 = "";
			if (s.length() < 3) {
				str1 = "00";
				if (s.length() < 2) {
					str2 = "0" + s;
				} else {
					str2 = s;
				}
			} else {
				if (s.length() < 4) {
					str1 = "0" + s.substring(0, 1);
					str2 = s.substring(1, 3);
				} else {
					str1 = s.substring(0, 2);
					str2 = s.substring(2, 4);
				}
			}
			sb.append(str1 + " ");
			sb.append(str2 + " ");
			
			con += Integer.parseInt(str1, 16);
			con += Integer.parseInt(str2, 16);
			
		}

		{
			// electrostaticdustoflife
			value = deviceModel.getInt("electrostaticdustoflife");
//			con += value;
			s = Integer.toString(value, 16).toUpperCase();
			str1 = "";
			str2 = "";
			if (s.length() < 3) {
				str1 = "00";
				if (s.length() < 2) {
					str2 = "0" + s;
				} else {
					str2 = s;
				}
			} else {
				if (s.length() < 4) {
					str1 = "0" + s.substring(0, 1);
					str2 = s.substring(1, 3);
				} else {
					str1 = s.substring(0, 2);
					str2 = s.substring(2, 4);
				}
			}
			sb.append(str1 + " ");
			sb.append(str2 + " ");
			con += Integer.parseInt(str1, 16);
			con += Integer.parseInt(str2, 16);
		}

		{
			// highefficiencyfilterlife
			value = deviceModel.getInt("highefficiencyfilterlife");
//			con += value;
			s = Integer.toString(value, 16).toUpperCase();
			str1 = "";
			str2 = "";
			if (s.length() < 3) {
				str1 = "00";
				if (s.length() < 2) {
					str2 = "0" + s;
				} else {
					str2 = s;
				}
			} else {
				if (s.length() < 4) {
					str1 = "0" + s.substring(0, 1);
					str2 = s.substring(1, 3);
				} else {
					str1 = s.substring(0, 2);
					str2 = s.substring(2, 4);
				}
			}

			sb.append(str1 + " ");
			sb.append(str2 + " ");
			con += Integer.parseInt(str1, 16);
			con += Integer.parseInt(str2, 16);
		}

		// {
		// // primaryfilterlife
		// sb.append("00 ");
		// sb.append("00 ");
		// }
		//
		// {
		// // electrostaticdustoflife
		// sb.append("00 ");
		// sb.append("00 ");
		// }
		//
		// {
		// // electrostaticdustoflife
		// sb.append("00 ");
		// sb.append("00 ");
		// }
		{
			// primaryfilterlife_overdue
			value = deviceModel.getInt("primaryfilterlife_overdue");
			con += value;
			s = Integer.toString(value, 16).toUpperCase();
			str1 = "";
			if (s.length() < 2) {
				str1 = "0" + s;
			} else {
				str1 = s;
			}
			sb.append(str1 + " ");
		}
		{
			// electrostaticdustoflife_overdue
			value = deviceModel.getInt("electrostaticdustoflife_overdue");
			con += value;
			s = Integer.toString(value, 16).toUpperCase();
			str1 = "";
			if (s.length() < 2) {
				str1 = "0" + s;
			} else {
				str1 = s;
			}
			sb.append(str1 + " ");
		}
		{
			// highefficiencyfilterlife_overdue
			value = deviceModel.getInt("highefficiencyfilterlife_overdue");
			con += value;
			s = Integer.toString(value, 16).toUpperCase();
			str1 = "";
			if (s.length() < 2) {
				str1 = "0" + s;
			} else {
				str1 = s;
			}
			sb.append(str1 + " ");
		}

		sb.append("00 ");
		sb.append("00 ");
		sb.append("00 ");
		sb.append("00 ");
		sb.append("00 ");
		sb.append("00 ");

		String id1 = id.substring(0, 2);
		String id2 = id.substring(2, 4);
		String id3 = id.substring(4, 6);

		Integer in1 = Integer.parseInt(id1, 16);
		Integer in2 = Integer.parseInt(id2, 16);
		Integer in3 = Integer.parseInt(id3, 16);
		con += in3;
		con += in2;
		con += in1;

		sb.append(id3 + " ");
		sb.append(id2 + " ");
		sb.append(id1 + " ");

		s = Integer.toString(con, 16).toUpperCase();
		if (s.length() < 2) {
			sb.append("0" + s + " ");
		} else {
			if (s.length() > 2) {
				sb.append(s.substring(s.length() - 2) + " ");
			} else {
				sb.append(s + " ");
			}
		}

		sb.append("AB");

		// 关闭查询开关
		DbMng.updateQueryOff(id);

		return sb.toString();
	}

}
